

<ul class="fff" id="iii">
    <li>Microsoft</li>
    <li>Google</li>
    <li>Apple</li>
    <li>IBM</li>
</ul>

<ol>
    <li>li 1</li>
    <li>li 2</li>
    <li>li 3</li>
</ol>

<dl>
    <dt>dt 21
        <dd>dd 31</dd>
        <dd>dd 32</dd>
        <dd>dd 33</dd>
    </dt>
    <dt>dt 22
        <dd>dd 31</dd>
        <dd>dd 32</dd>
        <dd>dd 33</dd>
    </dt>
</dl>

<ul>
    <li>first level item 1</li>
    <li>first level item 2
        <ul>
            <li>secnd level item 1</li>
            <li>secnd level item 2</li>
        </ul>
    </li>
    <li>first level item 3</li>
</ul>

<style>
ol {
   /* убираем стандартную нумерацию */
   list-style: none;
   /* Идентифицируем счетчик и даем ему имя li. Значение счетчика не указано - по умолчанию оно равно 0 */
   counter-reset: li;
}
li:before {
   /* Определяем элемент, который будет нумероваться — li. Псевдоэлемент before указывает, что содержимое, вставляемое при помощи свойства content, будет располагаться перед пунктами списка. Здесь же устанавливается значение приращения счетчика (по умолчанию равно 1). */
   counter-increment: li;
   /* С помощью свойства content выводится номер пункта списка. counters() означает, что генерируемый текст представляет собой значения всех счетчиков с таким именем. Точка в кавычках добавляет разделяющую точку между цифрами, а точка с пробелом добавляется перед содержимым каждого пункта списка */
   content: counters(li, ".") ". ";
}
</style>

<ol>
    <il>point
        <ol>
            <li>point 2</li>
            <li>point 2
                <ol>
                    <li>point 3</li>
                    <li>point 3</li>
                    <li>point 3</li>
                </ol>
            </li>
        </ol>
    </il>
    <il>point</il>
    <il>point</il>
</ol>